﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SundUnderviser.ModelLayer;
using SundUnderviser.ControlLayer;

namespace SundUnderviser.GUILayer
{
    public partial class PationeGenerelForm : Form
    {
        private List<Underviser> underviserList;
        private List<Modul> modulList;
        private List<Tema> temalist;
        private List<Patient> patientList;
        private Patient selectedPatient;
        PatientControler patientCtrl = new PatientControler();
        public PationeGenerelForm(Patient patient)
        {
            selectedPatient = patient;
            InitializeComponent();
            if (selectedPatient != null)
            {   //put values on screen
                textBoxNavn.Text = selectedPatient.Navn;
                labelAktuelPatient.Text = selectedPatient.Navn;
                textBoxPostnr.Text = selectedPatient.Postnr.ToString();
                textBoxTelefonnr.Text = selectedPatient.Telefon.ToString();
                textBoxAdresse.Text = selectedPatient.Adresse;
                textBoxAlder.Text = selectedPatient.Alder.ToString();
                textBoxBy.Text = selectedPatient.Byen;
                dateTimePicker1.Value = selectedPatient.IndDato;
                richTextBox1.Text = selectedPatient.Vaerdi;
                richTextBoxMedicin.Text = selectedPatient.Medicin;
                PatientControler patientCtrl = new PatientControler();
                Familie famObj = patientCtrl.HentFamilie(selectedPatient.Nr);
                if (famObj != null)
                {
                    textBoxFamilenavn.Text = famObj.Navn;
                    richTextBoxFamileEkstra.Text = famObj.Relation;
                    famObj.Patient = selectedPatient;
                }
               
            }
            else
            {
                button6.Visible = false;
            }
            if (underviserList == null)
            {
                comboBoxUnderviser.Items.Clear();
                underviserList = patientCtrl.hentAlleUnderviser();
                if (underviserList != null)
                {
                    foreach (Underviser underviserObj in underviserList)
                    {
                        comboBoxUnderviser.Items.Add(underviserObj.Navn);

                    }
                }
            }
            if (modulList == null)
            {
                comboBox1.Items.Clear();
                modulList = patientCtrl.hentAlleModuler();
                if (modulList != null)
                {
                    foreach (Modul modulObj in modulList)
                    {
                        comboBox1.Items.Add(modulObj.Navn);
                    }
                }
                if (selectedPatient != null)
                {
                    comboBox1.SelectedIndex = selectedPatient.Modul.Modulnr - 1;
                    temalist = patientCtrl.hentAlleTemaer(selectedPatient.Modul.Modulnr);
                    if (temalist != null)
                    {
                        foreach (Tema temaObj in temalist)
                        {
                            comboBox2.Items.Add(temaObj.Navn);
                        }
                    }
                }
            }
            buttonsygehistorik.Enabled = true;
            buttonTempMaalinger.Enabled = true;
            buttonLabSkemaer.Enabled = true;
            buttonAktuelStatus.Enabled = true;
          
            buttonAnamnese.Enabled = true;
            groupBox4.Visible = true;
            panel4.Visible = true;
           
        }

        private void button6_Click(object sender, EventArgs e)
        {

           
            if (underviserList == null)
            {
                comboBoxUnderviser.Items.Clear();
                underviserList = patientCtrl.hentAlleUnderviser();
                if (underviserList != null)
                {
                    foreach (Underviser underviserObj in underviserList)
                    {
                        comboBoxUnderviser.Items.Add(underviserObj.Navn);

                    }
                }
            }
            if (selectedPatient != null)
            {
                textBoxNavn.Text = selectedPatient.Navn;
                textBoxPostnr.Text = selectedPatient.Postnr.ToString();
                textBoxTelefonnr.Text = selectedPatient.Telefon.ToString();
                textBoxAdresse.Text = selectedPatient.Adresse;
                textBoxAlder.Text = selectedPatient.Alder.ToString();
                textBoxBy.Text = selectedPatient.Byen;
                dateTimePicker1.Value = selectedPatient.IndDato;
                richTextBox1.Text = selectedPatient.Vaerdi;
                richTextBoxMedicin.Text = selectedPatient.Medicin;

            }

            panel4.Visible = true;

        }

        private void PatientForm_Load(object sender, EventArgs e)
        {
        
            if (underviserList == null)
            {
                underviserList = patientCtrl.hentAlleUnderviser();
                comboBoxUnderviser.Items.Clear();
                if (underviserList != null)
                {
                    foreach (Underviser underviserObj in underviserList)
                    {
                        comboBoxUnderviser.Items.Add(underviserObj.Navn);

                    }
                }
            }
            buttonsygehistorik.Enabled = false;
            buttonTempMaalinger.Enabled = false;
            buttonLabSkemaer.Enabled = false;
            buttonAktuelStatus.Enabled = false;
     
            buttonAnamnese.Enabled = false;

        }

        

       

        private void button4_Click(object sender, EventArgs e)
        {
           
        }
        private void button5_Click(object sender, EventArgs e)
        {
            textBoxAdresse.Text = "";
            textBoxAlder.Text = "";
            textBoxBy.Text = "";
            textBoxFamilenavn.Text = "";
            textBoxFamilieTlf.Text = "";
            textBoxPostnr.Text = "";
            textBoxTelefonnr.Text = "";
            textBoxNavn.Text = "";
            richTextBoxFamileEkstra.Text = "";
            groupBox4.Visible = false;
            selectedPatient = null;
            labelMessage.Text = "";

        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                TemperaturForm tempFormObj = new TemperaturForm(selectedPatient);
                tempFormObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void buttonHandlinger_Click(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                UdfoertHandlingerForm udfoertObj = new UdfoertHandlingerForm(selectedPatient);
                udfoertObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void buttonsygehistorik_Click(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                StatusAnkomstForm statusObj = new StatusAnkomstForm(selectedPatient);
                statusObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

       


        private void buttonAktuelStatus_Click(object sender, EventArgs e)
        {

            if (selectedPatient != null)
            {
                JournalForm jourFormObj = new JournalForm(selectedPatient);
                jourFormObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }

        }

        private void button6_Click_1(object sender, EventArgs e)
        {

        }

        private void buttonAnamnese_Click_1(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                AnameseForm anamObj = new AnameseForm(selectedPatient);
                anamObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void buttonsygehistorik_Click_1(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                StatusAnkomstForm statusObj = new StatusAnkomstForm(selectedPatient);
                statusObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }

        }

        private void buttonAnamnese_Click(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                AnameseForm anamObj = new AnameseForm(selectedPatient);
                anamObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }

        }

        private void buttonAktuelStatus_Click_1(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                JournalForm jourFormObj = new JournalForm(selectedPatient);
                jourFormObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void buttonHandlinger_Click_1(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                UdfoertHandlingerForm udfoertObj = new UdfoertHandlingerForm(selectedPatient);
                udfoertObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void buttonTempMaalinger_Click(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                TemperaturForm tempFormObj = new TemperaturForm(selectedPatient);
                tempFormObj.Show();
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            string navn = textBoxNavn.Text;
            string adresse = textBoxAdresse.Text;

            string byen = textBoxBy.Text;
            int alder = 0;
            int tlf = 0;
            try
            {
                alder = Convert.ToInt32(textBoxAlder.Text);
                tlf = Convert.ToInt32(textBoxTelefonnr.Text);
            }
            catch (Exception econvert)
            {
                Console.WriteLine("tlf og alder skal være tal");
                Console.WriteLine(econvert);

            }
            String dato = dateTimePicker1.Text.ToString();

            DateTime dato1 = new DateTime();
            dato1 = DateTime.Parse(dato);

            Console.WriteLine("dato : " + dato1);
            int dd = dato1.Day;
            int mm = dato1.Month;
            int yy = dato1.Year;
            DateTime dato2 = new DateTime(yy, mm, dd);
            string famNavn = textBoxFamilenavn.Text;
            string famTlf = textBoxFamilieTlf.Text;
            string famKom = richTextBoxFamileEkstra.Text;
            int index2 = comboBoxSamtykke.SelectedIndex;
            string samtykke = "";
            if (index2 == 0)
            {
                samtykke = "Ja";
            }
            else
            {
                samtykke = "Nej";
            }
            string medicin = richTextBoxMedicin.Text;
            string vaerdi = richTextBox1.Text;
            int index = comboBoxUnderviser.SelectedIndex;
            string underviser = underviserList.ElementAt(index).Initialer;
            int indexModul = comboBox1.SelectedIndex;
            Modul modulObj = modulList.ElementAt(indexModul);
            selectedPatient = patientCtrl.OpretPatient(navn, adresse, byen, tlf, alder, dato2, famNavn, famTlf, famKom,samtykke, medicin,vaerdi, underviser, modulObj);
            if (selectedPatient != null )
            {
                labelMessage.Text = "Patitentens oplysninger er registreret";
                labelAktuelPatient.Text = selectedPatient.Navn;
            }
            else
            {
                labelMessage.Text = "Der er sket en fejl i oprettelsen af oplysningerne";
            }
            button6.Visible = true;
        }

        private void button5_Click_1(object sender, EventArgs e)
        {
            textBoxAdresse.Text = "";
            textBoxAlder.Text = "";
            textBoxBy.Text = "";
            textBoxFamilenavn.Text = "";
            textBoxFamilieTlf.Text = "";
            textBoxPostnr.Text = "";
            textBoxTelefonnr.Text = "";
            textBoxNavn.Text = "";
            richTextBoxFamileEkstra.Text = "";
            groupBox4.Visible = false;
            selectedPatient = null;
            labelMessage.Text = "";
            richTextBox1.Text = "";
            richTextBoxMedicin.Text = "";
        }

        private void button4_Click_1(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void button7_Click(object sender, EventArgs e)
        {
           
            if (selectedPatient != null)
            {
                ProblemHandlingEvaluering pmeObj = new ProblemHandlingEvaluering(selectedPatient);
                pmeObj.Show();
               
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }

        private void PationeGenerelForm_Load(object sender, EventArgs e)
        {
          

        }

        private void buttonLabSkemaer_Click(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                LabskemaerForm labskemaObj = new LabskemaerForm(selectedPatient);
                labskemaObj.Show();
                
            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
           
        }

        private void label12_Click(object sender, EventArgs e)
        {

        }

        private void label11_Click(object sender, EventArgs e)
        {

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button8_Click_1(object sender, EventArgs e)
        {
            if (selectedPatient != null)
            {
                LabskemaerForm labskemaObj = new LabskemaerForm(selectedPatient);
                labskemaObj.Show();

            }
            else
            {
                labelMeddelelse.Text = "Der skal vælges en patient først";
            }
        }
    }
}
